package top.truism.string;

/**
 * 最长公共前缀子串
 */
public class MaxPrefixSubString {

    public static String maxPrefixSubString(String[] stringArray) {
        if (stringArray == null || stringArray.length == 0) {
            return "";
        }
        int end = stringArray[0].length();
        for (int i = 1; i < stringArray.length; i++) {
            int j = 0;
            while (j < end
                    && j < stringArray[i].length()
                    && stringArray[0].charAt(j) == stringArray[i].charAt(j)) {
                j++;
            }
            end = j;
        }
        return stringArray[0].substring(0, end);
    }

    public static String maxPrefixSubStringDP(String[] strArray) {
        if (strArray == null || strArray.length == 0) {
            return "";
        }
        for (int i = 0; i < strArray[0].length(); i++) {
            for(int j = 1; j < strArray.length; j++) {
                if(i >= strArray[j].length() || strArray[0].charAt(i) != strArray[j].charAt(i)) {
                    return strArray[0].substring(0, i);
                }
            }
        }
        return strArray[0];
    }

}
